// ***************************************************************
//  Export_CastMgr.h   Create date: 09/08/2009
//  -------------------------------------------------------------
//  Author: wei
//  
//  Version history: 
//	 	  
//  -------------------------------------------------------------
//  Copyright (C) 2009  Hooyou tech. - All Rights Reserved
// ***************************************************************
// ***************************************************************

#ifndef _EXPORT_CASTMGR_HEADERFILE
#define _EXPORT_CASTMGR_HEADERFILE

#define _CASTMGR_VER "1.0.0.0"


// ==========================================================================
// Func: GetVer
// Pur:
// ==========================================================================
__declspec(dllexport) BSTR	CastMgrGetVer();


/* ************************************** Audio Render/testing realted *********************** */
// ==========================================================================
// Func: AudioPreview_Create
// Pur:  to create a audiopreview related handle
// ==========================================================================
__declspec(dllexport) HANDLE AudioPreview_Create();



// ==========================================================================
// Func:AudioPreview_GetDevCount
// Pur: to get audio device count(only capture device not the playback devcie)
// ==========================================================================
__declspec(dllexport) UINT AudioPreview_EnumDevices(HANDLE hInstance, char *lstDevices, int nCount, int nEachsize);


// ==========================================================================
// Func:AudioPreview_Render
// Pur: to render this audio card, and playback audio
// ==========================================================================
__declspec(dllexport) LONG AudioPreview_Render (HANDLE hInstance, CString &strAudioDev);


// ==========================================================================
// Func:AudioPreview_Run
// Pur: to run rendering 
// ==========================================================================
__declspec(dllexport) LONG AudioPreview_Run(HANDLE hInstance);

// ==========================================================================
// Func:AudioPreview_Pause
// Pur: to pause rendering
// ==========================================================================
__declspec(dllexport) LONG AudioPreview_Pause(HANDLE hInstance);

// ==========================================================================
// Func:AudioPreview_Stop
// Pur: to Stop rendering
// ==========================================================================
__declspec(dllexport) LONG AudioPreview_Stop(HANDLE hInstance);



// ==========================================================================
// Func: AudioPreview_Destroy
// Pur:  to destroy and release handle 
// ==========================================================================
__declspec(dllexport) VOID AudioPreview_Destroy (HANDLE &hInstance);




/* ************************************** Mic Volume related *********************** */
// ==========================================================================
// Func: MicVolume_Open
// Pur:  open  and return mic's current volume;
//If a window is chosen to receive callback information, 
//the MM_MIXM_LINE_CHANGE and MM_MIXM_CONTROL_CHANGE messages 
//are sent to the window procedure function to indicate when an audio line
//or control state changes. 
//wParam is the handle of the mixer device
//lParam is the current volume value 
// ==========================================================================
__declspec(dllexport) UINT MicVolume_Open(CString &strMicName, HWND hNotifyWnd);

// ==========================================================================
// Func: MicVolume_SetVolume
// Pur:  set mic's volume [unVolume]: in, [0, 100] 
// ==========================================================================
__declspec(dllexport) UINT MicVolume_SetVolume(UINT unVolume);

// ==========================================================================
// Func: MicVolume_GetVolume
// Pur:  query current mic's volume; return [0, 100] 
// ==========================================================================
__declspec(dllexport) UINT MicVolume_GetVolume();

// ==========================================================================
// Func: MicVolume_Destroy
// Pur:  release curretn opened resource
// ==========================================================================
__declspec(dllexport) UINT MicVolume_Destroy();

#endif